#include <iostream>

using namespace std;

/*
Problem Description
du熊对数学一直都非常感兴趣。最近在学习斐波那契数列的它，向你展示了一个数字串，它称之为“斐波那契”串：
 
11235813471123581347112358........
 
聪明的你当然一眼就看出了这个串是这么构造的：
1.先写下两位在0~9范围内的数字a, b，构成串ab；
2.取串最后的两位数字相加，将和写在串的最后面。
上面du熊向你展示的串就是取a = b = 1构造出来的串。
显然，步骤1之后不停地进行步骤2，数字串可以无限扩展。现在，du熊希望知道串的第n位是什么数字。
Input
输入数据的第一行为一个整数T（1 <= T <= 1000）, 表示有T组测试数据；
每组测试数据为三个正整数a, b, n（0 <= a, b < 10, 0 < n <= 10^9）。
Output
对于每组测试数据，输出一行“Case #c: ans”（不包含引号） 
c是测试数据的组数，从1开始。
Sample Input
3
1 1 2
1 1 8
1 4 8
Sample Output
Case #1: 1
Case #2: 3
Case #3: 9
Hint
对于第一、二组数据，串为112358134711235......
对于第三组数据，串为14591459145914......
*/

struct Mode {
	int id;
	int a, b; //可以去掉
	int arr[12];
	int len;
	int nextid;
} modes[9] = 
{
	{0, 1, 0, {1, 0, 1, 1, 2, 3, 5 ,8}, 8, 3},
	{1, 1, 1, {1, 1, 2, 3, 5, 8, 0 ,0}, 6, 3},
	{2, 1, 2, {1, 2, 3, 5, 8, 0, 0 ,0}, 5, 3},
	{3, 1, 3, {1, 3, 4, 7, 1, 1, 2 ,3, 5, 8}, 10, 3},
	{4, 1, 4, {1, 4, 5, 9, 0, 0, 0 ,0}, 4, 4},
	{5, 1, 5, {1, 5, 6, 0, 0, 0, 0 ,0}, 3, 1},
	{6, 1, 6, {1, 6, 7, 0, 0, 0, 0 ,0}, 3, 3},
	{7, 1, 7, {1, 7, 8, 0, 0, 0, 0, 0}, 3, 5},
	{8, 1, 8, {1, 8, 9, 0, 0, 0, 0 ,0}, 3, 7},
};

int a, b;
unsigned long n;

int f(int m, int n) {
#if 0
	cout << "m: " << m << " n: " << n << endl;
	if (n <= modes[m].len) {
		return modes[m].arr[n-1];
	}
	else
		return f(modes[m].nextid, n - modes[m].len);
#else
	//cout << "m: " << m << " n: " << n << endl;
	while(true) {
		if (m == 3 || m == 4) {
			n %= modes[m].len;
			return modes[m].arr[n-1];	
		}	
		if (n <= modes[m].len) {
			return modes[m].arr[n-1];
		}
		else {
			n -= modes[m].len;
			m = modes[m].nextid;
		}
	}
#endif
}

int main() {

	int T;
	int part[10];

	cin >> T;
	for (int t = 1; t <= T; t++) {
		cin >> a >> b >> n;
		if (a == 0 && b == 0) {
			cout << "Case #" << t << ":" << 0 << endl;
		}
		else if (a == 1) {
			cout << "Case #" << t << ":" << f(b, n) << endl;
		}
		else {
			part[0] = a, part[1] = b;
			unsigned int idx = 2;
			while(part[idx-2] + part[idx-1] < 10) {
				part[idx] = part[idx-2] + part[idx-1];
				idx++;
			}
			if (n <= idx) {
				cout << "Case #" << t << ":" << part[n-1] << endl;
			}
			else {
				int new_b = (part[idx-2] + part[idx-1]) %10;
				cout << "Case #" << t << ":" << f(new_b, n-idx) << endl;
			}
		}

	}
}
